// 频道接口
import http from '@/utils/request.js'

/**
 * 获取用户的频道
 * @returns {Promise<AxiosResponse<any>>}
 */
export const reqGetChannels = () => {
  return http({
    method: 'get',
    url: '/v1_0/user/channels'
  })
}

/**
 * 获取所有频道列表
 * @returns {Promise<AxiosResponse<any>>}
 */
export const reqGetAllChannels = () => {
  return http({
    method: 'get',
    url: '/v1_0/channels'
  })
}

/**
 * 获取文章新闻推荐
 * @param channelId 频道id
 * @param timestamp 时间戳,请求新的推荐数据传当前的时间戳(调用该接口返回的时间戳)，
 *                  请求历史推荐传指定的时间戳（自定义的时间戳）
 * @returns {Promise<AxiosResponse<any>>}
 */
export const reqGetArticleList = (channelId, timestamp) => {
  return http({
    method: 'get',
    url: '/v1_0/articles',
    params: {
      channel_id: channelId,
      timestamp
    }
  })
}

/**
 * 设置用户的频道（重置式）
 *
 * 本接口会先删除用户原有的关注频道，再重新保存用户频道，
 * 最终保存的用户频道仅为此接口收到的数据。可作为用户编
 * 辑频道时一次做了多个频道的顺序修改、新增、删除等行为
 * 的接口。也可作为用户初始频道设置
 * @param channels 用户关注的频道列表
 *        -id 频道id
 *        -seq 顺序序号，即频道下标
 * @returns {Promise<AxiosResponse<any>>}
 */
export const reqSetChannels = (channels) => {
  return http({
    method: 'put',
    url: '/v1_0/user/channels',
    data: {
      channels
    }
  })
}
